package net.zoneland.knowledge.service;

import java.util.List;
import net.zoneland.knowledge.model.EsQuestion;
import net.zoneland.knowledge.model.QaQueryDto;
import net.zoneland.knowledge.model.QaResponse;
import net.zoneland.knowledge.service.impl.search.SearchDto;

/**
 * .
 *
 * @author: bcc
 * 2021/5/25
 */
public interface QaQueryService {

    /**
     * 防止出现数据泄露的风险，基本的flag条件还是要加.
     * @param qaQueryDto
     * @return
     */
    SearchDto queryById(QaQueryDto qaQueryDto) throws Exception;


    /**
     * 手工输入内容的查询场景.
     * @param qaQueryDto
     * @return
     * @throws Exception
     */
    SearchDto search(QaQueryDto qaQueryDto) throws Exception;


    /**
     * 层级查询的情况.
     * @param qaQueryDto
     * @return
     * @throws Exception
     */
    SearchDto queryByPath(QaQueryDto qaQueryDto) throws Exception;

    void setRobotName(final List<EsQuestion> esQuestions, final QaQueryDto qaQueryDto) throws Exception;

    SearchDto queryByPathCombineConfig(QaQueryDto qaQueryDto) throws Exception;

}
